package cn.asura.service;

import cn.asura.pojo.Blog;

import java.util.List;

/**
 * @author Asura
 * @description
 * @createTime 2020-09-21 11:40
 */
public interface BlogService {
    /**
     * 查询全部的 blog，最新：按时间倒序；最热：按流览量倒序
     * @param type 排序规则
     * @return blog 列表
     */
    List<Blog> getBlogsByRule(String type);

    /**
     * 根据博客类型 id 查询博客
     * @param blogTypeId blog type id
     * @return blog 列表
     */
    List<Blog> findByBlogTypeId(int blogTypeId);

    /**
     * 查询全部 blog
     * @param id id
     * @param queryTitle title
     * @param blogTypeId type id
     * @param startTime 起始时间
     * @param endTime 终止时间
     * @return 博客列表
     */
    List<Blog> findAll(int id, String queryTitle, String blogTypeId, String startTime, String endTime);

    /**
     * 创建新的博客
     * @param blog blog
     * @return 是否成功
     */
    boolean create(Blog blog);

    /**
     * 通过 id 查询 blog
     * @param blogId blog id
     * @return 博客
     */
    Blog findByBlogId(int blogId);

    /**
     * 更新博客
     * @param blog blog
     * @return 是否更新
     */
    boolean update(Blog blog);

    /**
     * 删除博客
     * @param blogId blog id
     * @return 是否删除
     */
    boolean delete(int blogId);

    /**
     * 添加访问量
     * @param blogId blog id
     */
    void addView(int blogId);
}
